In many respects, developing, programming, and coding software involves a trial-and-error process of checking code syntax, compiling and re-compiling scripts, and testing modules of the software system in a design-time environment to ensure that the code is free of bugs and prepared for commercial or runtime deployment. Tools have been developed to assist software developers in debugging, compiling, and hard-coding their programs. Design-time tools and environments can provide such tools and development tools automating traditional software development tasks and processes. One example of a design-time environment are integrated development environments, or “IDEs”. IDEs can provide a suite of design-time components and tools, sometimes in a common user interface. Rather than utilizing several, distinct development tools, an IDE integrates multiple development tools into a common package to make access to and use of the tools more convenient to the user. In some instances, an IDE is dedicated to a particular programming language, thereby providing tools and a feature set compatible with and adapted to the nuances and programming paradigms of the language. However, some multiple-language IDEs do exist, such as commercially available versions of Eclipse, ActiveState Komodo, NetBeans, Microsoft Visual Studio, WinDev, and Xcode.
IDEs can provide tools and features for authoring, modifying, compiling, deploying and debugging software. Through a tight integration of development tools and tasks, software development productivity and efficiency can be improved. A typical IDE includes a debugger, compiler, source code editor, and build automation tools. Other contemporary IDEs can further include a class browser, object inspectors, and class hierarchy tools, for example, to assist in the development of object-oriented software.